home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 October / EnigmA AMIGA RUN 01 (1995)(G.R. Edizioni)(IT)[!][issue 1995-10][Aminet 7].iso / Aminet / comm / mail / thor201.lha / THOR_2.0 / thor.lha / rexx / AddAmiNetFileList.br next >
Text File  |  1995-05-15  |  2KB  |  100 lines

  1. /* AddAmiNetFileList.br
  2.  *
  3.  * Arexx script to add a AmiNet RECENT/INDEX list to the database.
  4.  *
  5.  */
  6.     options results
  7. /*    trace results */
  8.  
  9.     parse arg argument
  10.  
  11.     template = 'BBSNAME/A,FILENAME/A'
  12.  
  13.     if(argument = '' | argument = '?') then
  14.     do
  15.         say '$VER: AddAminetFileList.br V3.1 (10.2.95)'
  16.         say 'Template:' template
  17.         exit
  18.     end
  19.  
  20.     if ~show('p', 'BBSREAD') then do
  21.         address command
  22.             "run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead"
  23.             "WaitForPort BBSREAD"
  24.     end
  25.  
  26.     address BBSREAD
  27.  
  28.     READARGS template ARGS CMDLINE argument
  29.     if(rc ~= 0) then 
  30.     do
  31.         say BBSREAD.LASTERROR
  32.         exit
  33.     end
  34.  
  35.     if(~OPEN(fh,ARGS.FILENAME,'Read')) then 
  36.     do
  37.         say 'Unable to open file'
  38.         exit
  39.     end
  40.  
  41.     rc = 0
  42.     signal on ERROR
  43.     signal on BREAK_C
  44.     signal on HALT
  45.  
  46.     BUFMODE COPYBACK        /* Enable copyback buffer mode */
  47.  
  48.     do until eof(fh)
  49.         aline = readln(fh)
  50.  
  51.         do while(left(aline, 1) = '|')
  52.             aline  = readln(fh)
  53.         end
  54.  
  55.         farea = word(aline, 2)
  56.  
  57.         CONFIGFAREA '"' || ARGS.BBSNAME || '"' farea 
  58.  
  59.         fname = word(aline, 1)
  60.         fdesc = right(aline, length(aline) - 37)
  61.         fsize = right(left(aline, 36), 5)
  62.         if(right(fsize, 1) = 'M') then mega = 1
  63.         else mega = 0
  64.     
  65.         fsize = compress(fsize, 'KM .')
  66.  
  67.         if(~datatype(fsize,'W')) then fsize = 0
  68.         fsize = fsize * 1024
  69.         if(mega = 1) then fsize = trunc((fsize * 1024) / 10)
  70.  
  71.         say left(fname, 20) farea fsize strip(fdesc)
  72.  
  73.         if(fdescr ~= '') then
  74.         do
  75.             drop BRFILE.
  76.  
  77.             BRFILE.NAME      = fname
  78.             BRFILE.SIZE      = fsize
  79.                 
  80.             BRFILE.DESCRIPTION.COUNT = 1
  81.             BRFILE.DESCRIPTION.1 = strip(fdesc)
  82.  
  83.             WRITEBRFILE '"' || ARGS.BBSNAME || '"' farea stem BRFILE 
  84.  
  85.         end
  86.  
  87.     end
  88. ERROR:
  89. HALT:
  90. BREAK_C:
  91.  
  92.     if(rc ~= 0) then 
  93.     do
  94.         say 'Error' rc 'in line' SIGL ':' BBSREAD.LASTERROR
  95.     end
  96.  
  97.     BUFMODE ENDCOPYBACK        /* Disable copyback buffer mode */
  98.  
  99.     exit
  100.